package com.ibm.db2oncampus.portal.seguranca.service.impl;

import java.util.List;

import com.ibm.db2oncampus.portal.framework.service.AbstractService;
import com.ibm.db2oncampus.portal.seguranca.domain.Functionality;
import com.ibm.db2oncampus.portal.seguranca.domain.Module;
import com.ibm.db2oncampus.portal.seguranca.persistence.FunctionalityDao;
import com.ibm.db2oncampus.portal.seguranca.persistence.ModuleDao;
import com.ibm.db2oncampus.portal.seguranca.service.SegurancaoService;
import com.ibm.db2oncampus.portal.usuario.domain.Role;

/**
 * 
 * @author Wellington
 *
 */
public class SegurancaServiceImpl extends AbstractService implements SegurancaoService {

	private FunctionalityDao functionalityDao;
	private ModuleDao moduleDao;

	public SegurancaServiceImpl() {
	}
	
	public Boolean isFunctionalityValid(Functionality functionality, List<Role> validRoles) {
		return  functionalityDao.isFunctionalityValid(functionality, validRoles);
	}

	public List<Module> findModulosMenuByRole(List<Role> roles) {
		return moduleDao.findModulosMenuByRole(roles);
	}
	
	public List findFuncionalidadesBySistema(long codigoSistema) {
		return functionalityDao.findBySistema(codigoSistema);
	}

	public Functionality findFuncionalidadeById(long id) {
		return (Functionality)functionalityDao.findById(id);
	}

	public void saveFuncionalidade(Functionality funcionalidade) {
		functionalityDao.save(funcionalidade);
	}

	public void removeFuncionalidade(Functionality funcionalidade) {
		functionalityDao.remove(funcionalidade);
	}

	public List<Module> findModulosMenu()
	{
		return moduleDao.findModulosMenu();
	}

	public List<Module> findModulos()
	{
		return moduleDao.find();
	}

	public Module findModulosById(long id)
	{
		return (Module)moduleDao.findById(id);
	}

	public void saveModulo(Module modulo)
	{
		moduleDao.save(modulo);
	}

	public void removeModulo(Module modulo)
	{
		moduleDao.remove(modulo);
	}

	public FunctionalityDao getFunctionalityDao() {
		return functionalityDao;
	}

	public void setFunctionalityDao(FunctionalityDao functionalityDao) {
		this.functionalityDao = functionalityDao;
	}

	public ModuleDao getModuleDao() {
		return moduleDao;
	}

	public void setModuleDao(ModuleDao moduleDao) {
		this.moduleDao = moduleDao;
	}

}